﻿namespace Ewk.MachineLearning.Genetic.Programming.Program
{
    /// <summary>
    /// Represents the base node of a tree structure.
    /// </summary>
    internal abstract class Node
    {
        /// <summary>
        /// Gets the value of this instance.
        /// </summary>
        /// <returns>The value of this instance.</returns>
        public abstract dynamic GetValue();

        /// <summary>
        /// Creates a deep clone of this instance.
        /// </summary>
        /// <returns>The clone of this instance.</returns>
        public abstract Node Clone();
    }
}